package br.com.sisgerenciamento.model.empresa;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.com.sisgerenciamento.dto.empresa.EmpresaDTO;
import br.com.sisgerenciamento.utilidades.EstadosBrasilEnum;
import br.com.sisgerenciamento.utilidades.TreatDate;
import br.com.sisgerenciamento.utilidades.Validator;

@Table
@Entity(name = "EMPRESA")
public class EmpresaVO {

	@Id
	@GeneratedValue
	private Long codigo;
	
	@Temporal(TemporalType.DATE)
	private Date dataCadastro;
	
	@Column(length = 150)
	private String razaoSocial;
	
	@Column(length = 20)
	private String cnpj;
	
	@Column(length = 20)
	private String ie;
	
	@Column(length = 100)
	private String logradouro;
	
	@Column(length = 10)
	private String numero;
	
	@Column(length = 50)
	private String bairro;
	
	@Column(length = 50)
	private String cidade;
	
	@Enumerated(EnumType.ORDINAL)
	private EstadosBrasilEnum uf;
	
	@Column(length = 10)
	private String cep;
	
	@Column(length = 15)
	private String telefone;
	
	@Column(length = 15)
	private String telefone2;
	
	@Column(length = 15)
	private String celular;
	
	@Column(length = 15)
	private String celular2;
	
	@Column(length = 50)
	private String email;
	
	@Column(length = 50)
	private String site;
	
	
	public EmpresaDTO getDTO(){
		EmpresaDTO dto = new EmpresaDTO();
		
		Validator validator = Validator.novo();
		dto.setCodigo(!validator.isNullOrZero(getCodigo()) ? getCodigo().toString() : null );
		dto.setDataCadastro(TreatDate.formatDefaultDate(getDataCadastro()));
		dto.setRazaoSocial(getRazaoSocial());
		dto.setCnpj(getCnpj());
		dto.setIe(getIe());
		dto.setLogradouro(getLogradouro());
		dto.setNumero(getNumero());
		dto.setBairro(getBairro());
		dto.setCidade(getCidade());
		dto.setUf(getUf().getValor());
		dto.setCep(getCep());
		dto.setCelular(getCelular());
		dto.setCelular(getCelular2());
		dto.setTelefone(getTelefone());
		dto.setTelefone(getTelefone2());
		dto.setEmail(getEmail());
		dto.setSite(getSite());
		
		return dto;
	}

	public Long getCodigo() {
		return codigo;
	}
	public void setCodigo(Long codigo) {
		this.codigo = codigo;
	}
	public Date getDataCadastro() {
		return dataCadastro;
	}
	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}
	public String getRazaoSocial() {
		return razaoSocial;
	}
	public void setRazaoSocial(String razaoSocial) {
		this.razaoSocial = razaoSocial;
	}
	public String getCnpj() {
		return cnpj;
	}
	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}
	public String getIe() {
		return ie;
	}
	public void setIe(String ie) {
		this.ie = ie;
	}
	public String getLogradouro() {
		return logradouro;
	}
	public void setLogradouro(String logradouro) {
		this.logradouro = logradouro;
	}
	public String getNumero() {
		return numero;
	}
	public void setNumero(String numero) {
		this.numero = numero;
	}
	public String getCidade() {
		return cidade;
	}
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	public EstadosBrasilEnum getUf() {
		return uf;
	}
	public void setUf(EstadosBrasilEnum uf) {
		this.uf = uf;
	}
	public String getCep() {
		return cep;
	}
	public void setCep(String cep) {
		this.cep = cep;
	}
	public String getTelefone() {
		return telefone;
	}
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
	public String getCelular() {
		return celular;
	}
	public void setCelular(String celular) {
		this.celular = celular;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getSite() {
		return site;
	}
	public void setSite(String site) {
		this.site = site;
	}
	public String getBairro() {
		return bairro;
	}
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public String getTelefone2() {
		return telefone2;
	}
	public void setTelefone2(String telefone2) {
		this.telefone2 = telefone2;
	}
	public String getCelular2() {
		return celular2;
	}
	public void setCelular2(String celular2) {
		this.celular2 = celular2;
	}
	
	
	
}
